Add ADD (zx imm12), NOP, MOV (rs), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions #3683
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements the following T32 instructions:
Additionally fixes some existing implementations:
Blx
rather thanBlxr
. It was causingInvalidCastException
becauseBlx
expects an immediate address, not a register.IsAarch32UncoditionalBranch
was returning true for those instructions, which would cause the code immediately following it (branch not taken path) to be skipped and was silently generating incorrect code.OpCodeTable
.InstEmit
function and OpCode interfaces were changed to account for this.This allows Vita2HOS to launch again, it goes as far as the old version that did not use as many Thumb instructions. I planned to get more work done here, but since this contains some important fixes, I decided to PR it sooner rather than later.